Input & Output

Input/Output
shiny에서는 ui.R과 server.R에서 input과 output을 만들고, id를 통해서 설정된 데이터와 그래프를 주고 받는다.
Input
- sliderInput(“id”, “text”, min, max, value)
- selectInput(“id”, text”, list)
- checkboxInput(“id”, “text”, bool)
- radioButtons
- checkboxGroupInput
- numericInput

- submitButton
- fileInput
selectInput(inputId, label, choices, selected=NULL, multiple=FALSE)
checkboxInput(inputId, label, value=FALSE)
reactive(x, env=parent.frame(), quoted=FALSE, label=NULL)
ui.R
library(shiny)
shinyUI(pageWithSidebar(
headerPanel("Miles Per Gallon"),
sidebarPanel(
selectInput("variable", "Variabel: ",
list("Cylinders"="cyl",
"Transmission"="am",
"Gears"="gear")),
checkboxInput("outliers", "Show outliers", FALSE)
),
mainPanel(
h3(textOutput("caption")),
plotOutput("mpgPlot")
)
))
Output
h3: build html tag(text를 html로 변환 후 화면에 출력)
plotOutput(renderPlot): 그래프 출력
tableOutput(rednerTable): 테이블 출력
verbatimTextOutput(renderPrint): 콘솔 출력 텍스트를 html로 화면에 출력

output$variableid: ui.R에서 설정한 값 사용
server.R
library(shiny)
library(datasets)
mpgData<-mtcars
mpgData$am<-factor(mpgData$am, labels=c("Automatic", "Manual"))
shinyServer(function(input, output){
formulaText<-reactive({
paste("mpg ~", input$variable)
})
output$caption<-renderText({
formulaText()
})
output$mpgPlot<-renderPlot({
boxplot(as.formula(formulaText()), data=mpgData, outline=input$outliers)
})
})